home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 010 / games.arc / CHASE.BAS (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  4.9 KB  |  156 lines

  1. 10  SCREEN 0,0,0:WIDTH 80:KEY OFF:COLOR 7,0:CLS
  2. 20  T$=MID$(TIME$,7,2):RANDOMIZE VAL(T$)
  3. 30  LOCATE 5,31,0:PRINT" THE PONG-PONG GAME "
  4. 40  COLOR 0,7
  5. 50  FOR Y=10 TO 20
  6. 60  LOCATE Y,22,0:PRINT "                                       ";:NEXT Y
  7. 70  PRINT;
  8. 80  Y=15:X=30:LY=14:LX=29:XX=1:YY=1
  9. 90  LOCATE LY,LX,0:PRINT "WEND";
  10. 100  LOCATE Y,X,0:PRINT "<";
  11. 110  LY=Y:LX=X
  12. 120  X=X+XX:IF X>59 THEN XX=-1
  13. 130  IF X<23 THEN XX=1
  14. 140  Y=Y+YY:IF  Y>19 THEN YY=-1
  15. 150  IF Y<11 THEN YY=+1
  16. 160  COLOR 7,0:LOCATE 25,26,0:PRINT "PRESS SPACE BAR FOR INSTRUCTIONS";
  17. 170  K$=INKEY$:IF K$="" GOTO 90
  18. 180  IF K$<>" " THEN 90
  19. 190  POKE 106,0:CLS:LOCATE 5,10
  20. 200  PRINT"You are about to play a game of PONG-PONG. The object of the
  21. 210  PRINT" game is to HIT a target with a moving ball.  Of course the target will not
  22. 220  PRINT" stay still .  The ball's direction is controlled by inserting paddles in its"
  23. 230  PRINT" path.  To make the game more interesting the paddles remain on the gameboard.
  24. 240  PRINT"
  25. 250  PRINT"       You can control the games difficulty by choosing the length of time the
  26. 260  PRINT" target will remain in one location. You will be given FIVE targets.
  27. 270  PRINT'
  28. 280  PRINT"       The paddles are placed using keys '/' and '\' on the right and left
  29. 290  PRINT" bottom row of keys.  They will place a paddle at the balls current location.
  30. 300  PRINT
  31. 310  PRINT"      The TARGET will look like :";:COLOR 23,0:PRINT"WEND";:COLOR 7,0
  32. 320  PRINT"
  33. 330  PRINT"      The BALL will look like : <UNK! {0001}>"
  34. 340  LOCATE 25,20:PRINT" PRESS SPACE BAR TO START GAME ";
  35. 350  K$=INKEY$:IF K$="" GOTO 350
  36. 360  IF K$<>" " THEN 350
  37. 370  '-------------------------- SET TARGET TIMES ----------------------------
  38. 380  POKE 106,0:CLS:BAL=0:SCORE=0
  39. 390  LOCATE  5,15:PRINT" It is now time to choose the 'TARGET TIMES'.."
  40. 400  LOCATE 8,6:PRINT "If you have just played a game the target time was ";TGT;"seconds."
  41. 410  LOCATE 12,20,0:PRINT "HOW MANY SECONDS (1-59) DO YOU WISH ?"
  42. 420  LOCATE 15,27,0:PRINT " 5 ====> OUTSTANDING"
  43. 430  LOCATE 16,27,0:PRINT "10 ====> EXPERT"
  44. 440  LOCATE 17,27,0:PRINT "20 ====> VERY GOOD"
  45. 450  LOCATE 18,27,0:PRINT "30 ====> NORMAL"
  46. 460  LOCATE 19,27,0:PRINT "40 ====> BEGINNER"
  47. 470  LOCATE 20,27,0:PRINT "59 ====> IF YOU MUST!"
  48. 480  LOCATE 22,25,0:INPUT "  YOUR TIME (1-59) : ",TGT
  49. 490  IF TGT <1 OR TGT >59 THEN LOCATE 24,28,0:PRINT "BETWEEN 1 AND 59";:LOCATE 22,46,0:PRINT "   ";:GOTO 480
  50. 500  '---------------------- set game field on screen ------------------------
  51. 510  COLOR 0,7:CLS
  52. 520  A=1:Y=5:X=40:D=2
  53. 530  TY%=10:TX%=10
  54. 540  LOCATE 1,2:PRINT"KEYTHEN";
  55. 550  FOR I=3 TO 78:LOCATE 1,I,0:PRINT"THEN";:NEXT I
  56. 560  LOCATE 1,78,0:PRINT"THENCLOSE"
  57. 570  FOR I=2 TO 23:LOCATE I,79,0:PRINT"OPEN":NEXT I
  58. 580  LOCATE 24,79,0:PRINT "LOAD";
  59. 590  FOR I=78 TO 3 STEP -1:LOCATE 24,I,0:PRINT "THEN";:NEXT I
  60. 600  LOCATE 24,2,0:PRINT"SCREENTHEN";
  61. 610  FOR I=23 TO 2 STEP -1:LOCATE I,2,0:PRINT"OPEN":NEXT I
  62. 620  TIME$="00"
  63. 630  LOCATE 25,25:PRINT"SECONDS REMAINING ON TARGET NUMBER ";
  64. 640  GOSUB 1240
  65. 650  LY=Y:LX=X
  66. 660  IF D>4 THEN D=D-4:IF D<1 THEN D=D+4
  67. 670  ON D GOSUB 850,860,870,880
  68. 680  LOCATE 25,21:PRINT RT;
  69. 690  S=SCREEN (Y,X)
  70. 700  IF S=47 OR S=92 GOTO  950
  71. 710  IF S=178 THEN GOTO 1430
  72. 720  '--------------------------- erase old ball -----------------------------
  73. 730  LOCATE LY,LX:PRINT" "
  74. 740  LOCATE Y,X:PRINT CHR$(2)
  75. 750  CT= VAL(MID$(TIME$,7,2))
  76. 760  RT=TGT-CT: IF RT=<0 THEN GOSUB 1240
  77. 770  IF X=3 OR X=78 OR Y=2 OR Y=23 THEN GOSUB 1210
  78. 780  '--------------------------- check keyboard -----------------------------
  79. 790  K$=INKEY$:IF K$="" THEN K$="."
  80. 800  KY=ASC(K$)
  81. 810  IF KY=47  GOTO 1050
  82. 820  IF KY=92 GOTO 1080
  83. 830  GOTO 650
  84. 840  '------------------------- direction switches ---------------------------
  85. 850  Y=Y-1:GOTO 890
  86. 860  X=X+1:GOTO 890
  87. 870  Y=Y+1:GOTO 890
  88. 880  X=X-1:GOTO 890
  89. 890  IF X>78 THEN X=78
  90. 900  IF X<3 THEN X=3
  91. 910  IF Y>23 THEN Y=23
  92. 920  IF Y<2 THEN Y=2
  93. 930  RETURN
  94. 940  '------------------------- hit paddle routine ---------------------------
  95. 950  IF S=47 AND (D=1 OR D=3) GOTO 980
  96. 960  IF S=92 AND (D=2 OR D=4) GOTO 980
  97. 970  D=D-2
  98. 980  D=D+1
  99. 990  SOUND 60,1
  100. 1000  LOCATE LY,LX:PRINT" "
  101. 1010  IF D>4 THEN D=D-4
  102. 1020  IF D<1 THEN D=D+4
  103. 1030  GOTO 670
  104. 1040  '----------------------- paddle placement here -------------------------
  105. 1050  LOCATE Y,X:PRINT "/"
  106. 1060  IF D=1 OR D=3 THEN GOTO 1110
  107. 1070  D=D-2:GOTO 1110
  108. 1080  LOCATE Y,X:PRINT "\"
  109. 1090  IF D=2 OR D=4 THEN GOTO 1110
  110. 1100  D=D-2
  111. 1110  D=D+1
  112. 1120  IF D>4 THEN D=D-4
  113. 1130  IF D<1 THEN D=D+4
  114. 1140  ON D GOSUB 850,860,870,880
  115. 1150  LOCATE LY,LX:PRINT" "
  116. 1160  S=SCREEN(Y,X):IF S=178 GOTO 1430
  117. 1170  LOCATE Y,X:PRINT CHR$(2)
  118. 1180  LY=Y:LX=X
  119. 1190  GOTO 690
  120. 1200  '--------------------- sound of bouncing off wall ----------------------
  121. 1210  D=D+2:IF D>4 THEN D=D-4
  122. 1220  SOUND 38,2: RETURN
  123. 1230  '--------------------- place new target and ball -----------------------
  124. 1240  BAL=BAL+1:IF BAL=6 THEN 1350
  125. 1250  LOCATE TY%,TX%:PRINT" ";
  126. 1260  TY%=2+20*RND(3):TX%=4+72*RND(4)
  127. 1270  COLOR 16,7
  128. 1280  LOCATE TY%,TX%:PRINT"WEND";
  129. 1290  PLAY"MBA16B16A16B16"
  130. 1300  TIME$="00"
  131. 1310  COLOR 0,7
  132. 1320  LOCATE 25,60:PRINT BAL;
  133. 1330  RETURN
  134. 1340  '------------------------ five targets played --------------------------
  135. 1350  CLS:IF SCORE>0 GOTO 1450
  136. 1360  COLOR 23,0: LOCATE 5,31:PRINT " SORRY YOU LOSE ":COLOR 7,0
  137. 1370  LOCATE 10,23:PRINT " > YOU USED UP YOUR FIVE TARGETS < "
  138. 1380  LOCATE 24,20:PRINT " DO YOU WISH TO PLAY ANOTHER GAME (Y/N) ? ";
  139. 1390  K$=INKEY$:IF K$="" GOTO 1390
  140. 1400  IF K$="Y" OR K$="y" GOTO 370
  141. 1410  IF K$="N" OR K$="n" THEN CLS:LOCATE 10,35:PRINT" GOOD BYE":CHAIN "MENU",1000
  142. 1420  GOTO 1390
  143. 1430  '---------------------- score and winner circle ------------------------
  144. 1440  SCORE=SCORE+1
  145. 1450  PLAY "MSL16ABCDEFGABCDEFGABCDEFGP8C8P8C8P8C4"
  146. 1460  CLS:LOOP=200
  147. 1470  LOOP=LOOP-1:IF LOOP<>0 GOTO 1470
  148. 1480  IF BAL<5 GOTO 500
  149. 1490  CLS:LOCATE 5,32:PRINT "CONGRATULATIONS"
  150. 1500  LOCATE 10,19:PRINT"YOU HIT";SCORE;"TARGET(S) USING";TGT;"SECONDS/TARGET."
  151. 1510  LOCATE 24,24:PRINT"DO YOU WISH TO PLAY AGAIN (Y/N)? ";
  152. 1520  K$=INKEY$:IF K$="" GOTO 1520
  153. 1530  IF K$="Y" OR K$="y" THEN COLOR 7,0:GOTO 370
  154. 1540  IF K$="N" OR K$="n" THEN 1550 ELSE 1520
  155. 1550  CLS:LOCATE 12,35:COLOR 7,0:PRINT " GOOD BYE ":LOCATE 23,1:CHAIN "MENU",1000
  156.